using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TankControl : MonoBehaviour
{

    public float moveSpeed = 10;

    public float dcMoveSpeed = 5;

    public float rotateSpeed = 100;

    public Transform head;

    public float headRotateSpeed = 200;

    // 子弹对象
    public GameObject bulletObj;

    // 子弹位置
    public Transform bulletPos;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        // 水平方向的移动
        float xMove = Input.GetAxis("Horizontal");
        // 垂直方向的移动
        float yMove = Input.GetAxis("Vertical");


        // 对前进和后退采用不同的速度控制
        float realYSpeed = yMove > 0 ? moveSpeed : dcMoveSpeed;

        // 前后移动控制
        this.transform.Translate(Vector3.forward * yMove * realYSpeed * Time.deltaTime, Space.Self);

        // 前后不移动时不允许旋转
        if (yMove != 0)
        {
            // 后推时旋转方向和前进时是反的
            float realXMove = yMove > 0 ? 1 : -1;

            // 旋转
            this.transform.Rotate(Vector3.up * rotateSpeed * xMove * realXMove * Time.deltaTime, Space.Self);
        }

        // 进行头部旋转
        head.Rotate(Vector3.up * headRotateSpeed * Input.GetAxis("Mouse X") * Time.deltaTime, Space.Self);

        // 如果鼠标左键按下
        if (Input.GetMouseButtonDown(0))
        {
            // 使用代码创建实例
            GameObject _bulletObj = Instantiate(bulletObj);

            // 设置生成实例的世界坐标
            _bulletObj.transform.position = bulletPos.position;
            // 设置生成实例的角度信息(此处是欧拉角)
            _bulletObj.transform.eulerAngles = bulletPos.eulerAngles;
        }
    }
}
